5 CLS
10 PRINTTAB(30);"SEABATTLE"
20 PRINTTAB(13);"CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY"
30 PRINT:PRINT:PRINT
270 DIMA(14,21),D(9),B(5),A$(7)
275 RESTORE:FORRT=1TO7:READA$(RT):NEXT
280 PRINT"WHAT IS YOUR NAME FOR THE LOG, CAPTAIN";
290 INPUTN$
295 N$="CAPTAIN "+N$
300 PRINT
320 FORI=1TO14
322 FORJ=1TO21
324 A(I,J)=0
326 NEXTJ,I
340 RESTORE:FORCV=1TO32:READA$:NEXT
350 FORX=7TO13
360 FORY=7TO12
370 READA(X,Y)
380 NEXTY
390 NEXTX
410 S1=10:S2=10
420 A(S1,S2)=2
440 S=INT(RND(0)*16)+15
450 RESTORE:FORCV=1TO16:READA$:NEXT
460 FORX=1TO(INT(RND(0)*4)+1)*2-1
470 READD8,D9
480 NEXTX
490 FORX=1TOS
500 X1=INT(RND(0)*14)+1
510 X2=INT(RND(0)*21)+1
520 IFA(X1,X2)<>0THEN500
530 A(X1,X2)=3
540 NEXTX
550 PRINT"YOU MUST DESTROY";S;"ENEMY SHIPS TO WIN ";N$;"."
570 S4=INT(RND(0)*21)+1
580 S3=INT(RND(0)*14)+1
590 IFA(S3,S4)<>0THEN570
600 A(S3,S4)=4
620 FORX=1TOINT(RND(0)*8)+8
630 X2=INT(RND(0)*21)+1
640 X1=INT(RND(0)*14)+1
650 IFA(X1,X2)<>0THEN630
660 A(X1,X2)=5
670 NEXTX
690 FORX=1TO4
700 X2=INT(RND(0)*19)+2
710 X1=INT(RND(0)*12)+2
720 IFA(X1,X2)<>0THEN700
730 A(X1,X2)=6
740 RESTORE:FORCV=1TO16:READA$:NEXT
750 FORY=1TOINT(RND(0)*8)+1
760 READM1,M2
770 NEXTY
780 NEXTX
800 FORI=1TO9
810 D(I)=0
820 NEXTI
830 C=30
840 P=6000
850 F=2500
860 T=10
870 M=3
880 D=100
885 D2=2
890 PRINT"PRESS ANY KEY TO CONTINUE"
895 A$=INKEY$:IFA$=""THEN895
897 FG=1:GOSUB1800:FG=0:PRINT"WHAT ARE YOUR ORDERS ";N$;
900 INPUTO
910 ONINT(O+1)GOTO1050,1690,2230,2690,3260,3420,3700,3890,4410,4670
920 PRINT"THE COMMANDS ARE:"
930 PRINT"          #0: NAVIGATION"
940 PRINT"          #1: SONAR"
950 PRINT"          #2: TORPEDO CONTROL"
960 PRINT"          #3: POLARIS MISSILE CONTROL"
970 PRINT"          #4: MANUEVERING"
980 PRINT"          #5: STATUS/DAMAGE REPORT"
990 PRINT"          #6: HEADQUARTERS"
1000 PRINT"          #7: SABOTAGE"
1010 PRINT"          #8: POWER CONVERSION"
1020 PRINT"          #9: SURRENDER"
1030 GOTO890
1050 X=0:Y=0:Y1=0:X1=0:IFD(1)>=0THEN1080
1060 PRINT"ENGINES ARE UNDER REPAIR ";N$;"."
1070 GOTO890
1080 IFC>8THEN1110
1090 PRINT"NOT ENOUGH CREW TO MAN THE ENGINES ";N$;"."
1100 GOTO890
1110 D1=1-((.23+RND(0)/10)*(-(D<=50)))
1120 GOSUB6090
1130 PRINT"POWER AVAILABLE=";P;". POWER TO USE";
1140 INPUTP1
1150 IFP1<0ORP1>PTHEN1130
1160 IFP1<=1000THEN1210
1170 IFRND(0)<.43THEN1210
1180 PRINT"ATOMIC PILE GOES SUPERCRITICAL ";N$;"!!! HEADQUARTERS"
1190 PRINT"WILL WARN ALL SUBS TO STAY AWAY FROM RADIOACTIVE AREA!!!"
1200 GOTO6190
1210 X=S1
1220 Y=S2
1230 Q1=1
1240 FORX2=1TOINT(INT(P1/100+.5)*D1+.5)
1250 IFX+X1>0ANDX+X1<15ANDY+Y1>0ANDY+Y1<22THEN1280
1260 PRINT"YOU CAN'T LEAVE THE AREA ";N$;"!!"
1270 GOTO1340
1280 ONA(X+X1,Y+Y1)+1GOTO1290,1330,1630,1390,1440,1470,1490
1290 X=X+X1
1300 Y=Y+Y1
1310 P=P-100
1320 GOTO1530
1330 PRINT"YOU ALMOST RAN AGROUND ";N$;"!!"
1340 A(X,Y)=2
1350 A(S1,S2)=0
1360 S1=X
1370 S2=Y
1380 GOTO4700
1390 IFD>50THEN1290
1400 PRINT"YOU RAMMED A SHIP!!! YOU'RE BOTH SUNK!!"
1410 S=S-1
1420 IFS=0THEN6260
1430 GOTO6190
1440 IFD>50THEN1290
1450 PRINT"YOU RAMMED HEADQUARTERS!! YOU'RE SUNK!!"
1460 GOTO6190
1470 PRINT"YOU'VE BEEN BLOWN UP BY A MINE ";N$;"!!"
1480 GOTO6190
1490 IFRND(0)<.21THEN1630
1500 PRINT"YOU WERE EATEN BY A SEA MONSTER, ";N$;"!!"
1510 GOTO6190
1530 FORX3=X-2TOX+2
1540 FORY3=Y-2TOY+2
1550 IFX3<1ORX3>14ORY3<1ORY3>21THEN1610
1560 IFA(X,Y)<>6THEN1610
1570 IFRND(0)<.25THEN1500
1580 IFQ1=0THEN1610
1590 PRINT"YOU JUST HAD A NARROW ESCAPE WITH A SEA MONSTER ";N$;"!!"
1600 Q1=0
1610 NEXTY3
1620 NEXTX3
1630 NEXTX2
1640 PRINT"NAVIGATION COMPLETE. POWER LEFT=";P;"."
1650 IFP>0THEN1340
1660 PRINT"ATOMIC PILE HAS GONE DEAD!!! SUB SINKS, CREW SUFFOCATES"
1670 GOTO6190
1690 IFD(2)>=0THEN1720
1700 PRINT"SONAR IS UNDER REPAIR ";N$;"."
1710 GOTO890
1720 IFC>5THEN1750
1730 PRINT"NOT ENOUGH CREW TO WORK SONAR ";N$;"."
1740 GOTO890
1750 PRINT"OPTION #";
1760 INPUTO
1770 ONINT(O+1)GOTO1800,2020
1780 GOTO1750
1800 CLS
1810 FORX=1TO14
1820 FORY=1TO21
1830 DATA"   ",***,>V<,<R>,!H!," $ ",-#-
1835 IFA(X,Y)<>0THEN1880
1840 IFY<>1ANDY<>21ANDX<>1ANDX<>14THEN1880
1860 PRINT" . ";:GOTO1950
1880 RESTORE
1890 ONA(X,Y)+1GOTO1891,1892,1893,1894,1895,1896,1897
1891 A$=A$(1):GOTO1920
1892 A$=A$(2):GOTO1920
1893 A$=A$(3):GOTO1920
1894 A$=A$(4):GOTO1920
1895 A$=A$(5):GOTO1920
1896 A$=A$(6):GOTO1920
1897 A$=A$(7)
1920 IFD<50ANDRND(0)<.23ANDA(X,Y)<>1ANDA(X,Y)<>2THEN1860
1930 IFRND(0)<.15ANDA(X,Y)>2THEN1860
1940 PRINTA$;
1950 NEXTY
1960 PRINT
1970 NEXTX:IFFG=1THENRETURN
1980 P=P-50
1990 IFP>0THEN890
2000 GOTO1660
2020 FORI=1TO5
2022 B(I)=0
2024 NEXTI
2030 PRINT"DIRECTION   # OF SHIPS    DISTANCES"
2040 RESTORE:FORX=1TO16:READA$:NEXT
2050 FORX=1TO8
2060 READX1,Y1
2070 X3=0
2080 FORX4=1TO20
2090 IFS1+X1*X4<1ORS1+X1*X4>14ORS2+Y1*X4<1ORS2+Y1*X4>21THEN2140
2100 IFA(S1+X1*X4,S2+Y1*X4)<>3THEN2130
2110 X3=X3+1
2120 B(X3)=X4
2130 NEXTX4
2140 IFX3=0THEN2200
2150 PRINT"   ";X,X3,
2160 FORX4=1TOX3
2170 PRINTB(X4);
2180 NEXTX4
2190 PRINT
2200 NEXTX
2210 GOTO1980
2230 X=0:X1=0:Y1=0:Y=0:IFD(3)>=0THEN2260
2240 PRINT"TORPEDO TUBES ARE UNDER REPAIR ";N$;"."
2250 GOTO890
2260 IFC>=10THEN2290
2270 PRINT"NOT ENOUGH CREW TO FIRE TORPEDO ";N$;"."
2280 GOTO890
2290 IFTTHEN2320
2300 PRINT"NO TORPEDOS LEFT ";N$;"."
2310 GOTO890
2320 IFD<2000THEN2360
2330 IFRND(0)>.5THEN2360
2340 PRINT"PRESSURE IMPLODES UPON FIRING...YOU'RE CRUSHED!!"
2350 GOTO6190
2360 GOSUB6090
2370 X=S1
2380 Y=S2
2390 FORX2=1TOINT(7+5*(-(D>50))-RND(0)*4+.5)
2400 IFX+X1>0ANDX+X1<15ANDY+Y1>0ANDY+Y1<22THEN2460
2410 PRINT"TORPEDO OUT OF SONAR RANGE...INEFFECTUAL ";N$;"."
2420 T=T-1
2430 P=P-150
2440 IFP>0THEN4700
2450 GOTO1660
2460 ONA(X+X1,Y+Y1)+1GOTO2470,2510,2650,2540,2580,2610,2630
2470 X=X+X1
2480 Y=Y+Y1
2490 PRINT"..!..";
2500 GOTO2650
2510 PRINT"YOU TOOK OUT SOME ISLAND ";N$;"!"
2520 A(X+X1,Y+Y1)=0
2530 GOTO2420
2540 PRINT"OUCH!!! YOU GOT ONE ";N$;"!!"
2550 S=S-1
2560 IFS<>0THEN2520
2570 GOTO6260
2580 PRINT"YOU BLEW UP YOUR HEADQUARTERS ";N$;"!!!"
2590 S3=0:S4=0:D2=0
2600 GOTO2520
2610 PRINT"BLAM!! SHOT WASTED ON A MINE ";N$;"!!"
2620 GOTO2520
2630 PRINT"A SEA MONSTER HAD A TORPEDO FOR LUNCH ";N$;"!!"
2640 GOTO2420
2650 NEXTX2
2660 PRINT"DUD."
2670 GOTO2420
2690 IFD(4)>=0THEN2720
2700 PRINT"MISSILE SILOS ARE UNDER REPAIR ";N$;"."
2710 GOTO890
2720 IFC>23THEN2750
2730 PRINT"NOT ENOUGH CREW TO LAUNCH MISSILE ";N$;"."
2740 GOTO890
2750 IFM<>0THEN2780
2760 PRINT"NO MISSILES LEFT ";N$;"."
2770 GOTO890
2780 IFD>50ANDD<2000THEN2850
2790 PRINT"RECOMMEND THAT YOU DO NOT FIRE AT THIS DEPTH...PROCEED";
2800 INPUTA$
2810 IFLEFT$(A$,1)="N"THEN890
2820 IFRND(0)<.5THEN2850
2830 PRINT"MISSILE EXPLODES UPON FIRING ";N$;"!! YOU'RE DEAD!!"
2840 GOTO6190
2850 GOSUB6090
2860 PRINT"FUEL (LBS.)";
2870 INPUTF1
2880 IFF1>0ANDF1<=FTHEN2910
2890 PRINT"YOU HAVE";F;"LBS. LEFT ";N$;"."
2900 GOTO2860
2910 F2=INT(F1/75+.5)
2920 IFS1+X1*F2>0ANDS1+X1*F2<15ANDS2+Y1*F2>0ANDS2+Y1*F2<22THEN2980
2930 PRINT"MISSILE OUT OF SONAR TRACKING ";N$;". MISSILE LOST."
2940 M=M-1
2950 F=F-F1
2960 P=P-300
2970 GOTO2440
2980 D3=0:D4=0:D5=0:D6=0
2990 FORX=S1+X1*F2-1TOS1+X1*F2+1
3000 FORY=S2+Y1*F2-1TOS2+Y1*F2+1
3010 IFX<1ORX>14ORY<1ORY>21THEN3140
3020 D3=D3-(A(X,Y)=3)
3030 D4=D4-(A(X,Y)=6)
3040 D5=D5-(A(X,Y)=5)
3050 D6=D6-(A(X,Y)=1)
3060 IFA(X,Y)<>4THEN3100
3070 PRINT"YOU'VE JUST DESTROYED YOUR HEADQUARTERS ";N$;"!!!"
3080 D3=0:S4=0:D2=0
3090 GOTO3130
3100 IFA(X,Y)<>2THEN3130
3110 PRINT"YOU'VE JUST DESTROYED YOURSELF ";N$;"!!!    DUMMY!!"
3120 GOTO6190
3130 A(X,Y)=0
3140 NEXTY
3150 NEXTX
3160 IFD6=0THEN3180
3170 PRINT"YOU BLEW OUT SOME ISLAND ";N$;"."
3180 IFD5=0THEN3200
3190 PRINT"YOU DESTROYED";D5;"MINES ";N$;"."
3200 IFD4=0THEN3220
3210 PRINT"YOU GOT";D4;"SEA MONSTERS ";N$;"!!!   GOOD WORK!!"
3220 PRINT"YOU DESTROYED";D3;"ENEMY SHIPS ";N$;"!!!"
3230 S=S-D3
3240 GOTO2940
3260 IFD(5)>=0THEN3290
3270 PRINT"BALLAST CONTROLS ARE BEING REPAIRED ";N$;"."
3280 GOTO890
3290 IFC>12THEN3320
3300 PRINT"THERE ARE NOT ENOUGH CREW TO WORK THE CONTROLS ";N$;"."
3310 GOTO890
3320 PRINT"NEW DEPTH";
3330 INPUTD1
3340 IFD1>=0ANDD1<3000THEN3370
3350 PRINT"HULL CRUSHED BY PRESSURE ";N$;"!!"
3360 GOTO6190
3370 P=P-INT(ABS((D-D1)/2+.5))
3380 PRINT"MANUEVER COMPLETE. POWER LOSS=";INT(ABS((D-D1)/2+.5))
3390 D=D1
3400 GOTO4700
3420 IFD(6)>=0THEN3450
3430 PRINT"NO REPORTS ARE ABLE TO GET THROUGH ";N$;"."
3440 GOTO890
3450 IFC>3THEN3480
3460 PRINT"NO ONE LEFT TO GIVE THE REPORT ";N$;"."
3470 GOTO890
3480 PRINT"# OF ENEMY SHIPS LEFT.......";S
3490 PRINT"# OF POWER UNITS LEFT.......";P
3500 PRINT"# OF TORPEDOS LEFT..........";T
3510 PRINT"# OF MISSILES LEFT..........";M
3520 PRINT"# OF CREWMEN LEFT...........";C
3525 PRINT"DEPTH (IN FEET).............";D
3530 PRINT"LBS. OF FUEL LEFT...........";F
3540 PRINT
3550 PRINT"WANT A DAMAGE REPORT";
3560 INPUTA$
3570 IFLEFT$(A$,1)="N"THEN3670
3580 PRINT"   ITEM            DAMAGE  (+ GOOD, 0 NEUTRAL, - BAD)"
3590 PRINT"   ----            ------"
3600 DATAENGINES,SONAR,TORPEDOS,MISSILES,MANUEVERING
3610 DATASTATUS,HEADQUARTERS,SABOTAGE,CONVERTER
3620 RESTORE:FORCV=1TO7:READA$:NEXT
3630 FORX=1TO9
3640 READA$
3650 PRINTA$,D(X)
3660 NEXTX
3670 PRINT"YOU ARE AT LOCATION (";S1;",";S2;")."
3680 PRINT
3690 GOTO890
3710 IFD(7)>=0THEN3740
3720 PRINT"HEADQUARTERS IS DAMAGED.  UNABLE TO HELP ";N$;"."
3730 GOTO890
3740 IFD2<>0THEN3770
3750 PRINT"HEADQUARTERS IS DESERTED ";N$;"."
3760 GOTO890
3770 IFSQR((S1-S3)^2+(S2-S4)^2)<=2ANDD<51THEN3800
3780 PRINT"UNABLE TO COMPLY WITH DOCKING ORDERS ";N$;"."
3790 GOTO890
3800 PRINT"DIVERS FROM HEAD QUARTERS BRING OUT SUPPLYS AND MEN."
3810 P=4000
3820 T=8
3830 M=2
3840 F=1500
3850 C=25
3860 D2=D2-1
3870 GOTO4700
3890 IFD(8)>=0THEN3920
3900 PRINT"HATCHES INACCESSIBLE ";N$;".  NO SABOTAGES POSSIBLE."
3910 GOTO890
3920 IFC>10THEN3950
3930 PRINT"NOT ENOUGH CREW TO GO ON MISSION ";N$;"."
3940 GOTO890
3950 D3=0:D4=0
3960 FORX=S1-2TOS1+2
3970 FORY=S2-2TOS2+2
3980 IFX<1ORX>20ORY<1ORY>20THEN4010
3990 D3=D3-(A(X,Y)=3)
4000 D4=D4-(A(X,Y)=6)
4010 NEXTY
4020 NEXTX
4030 IFD3<>0THEN4060
4040 PRINT"NO SHIPS IN RANGE ";N$;"."
4050 GOTO890
4060 PRINT"THERE ARE";D3;"SHIPS IN RANGE ";N$;"."
4070 PRINT"HOW MANY MEN ARE GOING ";N$;
4080 INPUTQ1
4090 IFC-Q1>10THEN4120
4100 PRINT"YOU MUST LEAVE AT LEAST 10 MEN ON BOARD ";N$;"."
4110 GOTO4070
4120 D5=INT(D3/Q1+.5)
4130 D6=0
4140 FORX=S1-2TOS1+2
4150 FORY=S2-2TOS2+2
4160 IFD3/Q1>1-RND(0)ANDRND(0)+D3/Q1<.9THEN4220
4170 IFA(X,Y)<>3THEN4220
4180 D6=D6+1
4190 A(X,Y)=0
4200 S=S-1
4210 IFS=0THEN6260
4220 NEXTY
4230 NEXTX
4240 PRINTD6;"SHIPS WERE DESTROYED ";N$;"."
4250 D6=0:D7=0
4260 FORX=1TOQ1
4270 D7=D7-(RND(0)>.6)
4280 NEXTX
4290 FORX=1TOQ1-D7
4300 D6=D6-(RND(0)<.15)
4310 NEXTX
4320 IFD4=0THEN4360
4330 PRINT"A SEA MONSTER SMELLS THE MEN ON THE WAY BACK!!!"
4340 PRINTD7;"MEN WERE EATEN ";N$;"!!"
4350 C=C-D7
4360 PRINTD6;"MEN WERE LOST THROUGH ACCIDENTS ";N$;"."
4370 C=C-D6
4380 P=P-INT(10*Q1+RND(0)*10)
4390 GOTO4700
4410 IFD(9)>=0THEN4440
4420 PRINT"POWER CONVERTER IS DAMAGED ";N$;"."
4430 GOTO890
4440 IFC>5THEN4470
4450 PRINT"NOT ENOUGH MEN TO WORK THE CONVERTER ";N$;"."
4460 GOTO890
4470 PRINT"OPTION? (1=FUEL TO POWER, 2=POWER TO FUEL)";
4480 INPUTO
4490 ONOGOTO4520,4590
4500 GOTO4470
4520 PRINT"FUEL AVAILABLE=";F;". CONVERT";
4530 INPUTC1
4540 IFC1>F ORC1<0THEN4520
4550 F=F-C1
4560 P=P+INT(C1/3)
4570 GOTO4640
4590 PRINT"POWER AVAILABLE=";P-1;". CONVERT";
4600 INPUTC1
4610 IFC1>P-1ORC1<0THEN4590
4620 P=P-C1
4630 F=F+INT(C1*3)
4640 PRINT"CONVERSION COMPLETE. POWER=";P;". FUEL=";F;"."
4650 GOTO4700
4670 PRINT"COWARD!! YOU'RE NOT VERY PATRIOTIC ";N$;"!!!"
4680 GOTO6190
4700 Q=0
4710 FORX=S1-4TOS1+4
4720 FORY=S2-4TOS2+4
4730 IFX<1ORX>14ORY<1ORY>21THEN4760
4740 IFA(X,Y)<>3THEN4760
4750 Q=Q+(RND(0)/SQR((S1-X)^2+(S2-Y)^2))
4760 NEXTY
4770 NEXTX
4780 IFQTHEN4810
4790 PRINT"NO SHIPS IN RANGE TO DEPTH CHARGE YOU ";N$;"!!"
4800 GOTO5220
4810 PRINT"DEPTH CHARGES OFF ";
4820 IFRND(0)>.5THEN4850
4830 PRINT"PORT SIDE ";N$;"!!!"
4840 GOTO4860
4850 PRINT"STARBOARD SIDE ";N$;"!!!"
4860 IFQ3>.36ORRND(0)>.92THEN4890
4870 PRINT"NO REAL DAMAGE SUSTAINED ";N$;"."
4880 GOTO5220
4890 IFQ>.36ORRND(0)>.96THEN4940
4900 PRINT"LIGHT, SUPERFICAL DAMAGE ";N$;"."
4910 P=P-50
4920 D(INT(RND(0)*9)+1)=-RND(0)*2
4930 GOTO5220
4940 IFQ>.6ORRND(0)>.975THEN5020
4950 PRINT"MODERATE DAMAGE. REPAIRS NEEDED."
4960 P=P-75+INT(RND(0)*30)
4970 FORY=1TO2
4980 X=INT(RND(0)*9)+1
4990 D(X)=D(X)-RND(0)*8
5000 NEXTY
5010 GOTO5220
5020 IFQ>.9ORRND(0)>.983THEN5100
5030 PRINT"HEAVY DAMAGE!! REPAIRS IMMEDIATE ";N$;"!!!"
5040 P=P-(200+INT(RND(0)=76))
5050 FORX=1TO4+INT(RND(0)*2)
5060 Y=INT(RND(0)*9)+1
5070 D(Y)=D(Y)-RND(0)*11
5080 NEXTX
5090 GOTO5220
5100 PRINT"DAMAGE CRITICAL!!!!   WE NEED HELP!!!"
5110 A$="VRAVUKXCNVPCRHFDRSAXQURLQTRHXYACVFZYITLCBSSYYKDQIPCAEGQGPCNOTSIO"
5120 X=INT(RND(0)*16)+1
5130 PRINT"SEND 'HELP' IN CODE. HERE IS THE CODE:";MID$(A$,X,4);
5134 FORI=1TO500:NEXTI
5136 CLS
5140 INPUT"ENTER CODE";B$
5150 PRINT
5160 IFB$<>MID$(A$,X,4)THEN5190
5170 PRINT"FAST WORK ";N$;"!! HELP ARRIVES IN TIME TO SAVE YOU!!!"
5180 GOTO5040
5190 PRINT"MESSAGE GARBLED ";N$;"...NO HELP ARRIVES!!!"
5200 GOTO6190
5210 IFD(1)>=0ORD(3)>=0ORD(4)>=0ORD(5)>=0ORD(6)>=0ORD(7)>=0THEN5270
5220 IFD(8)>=0ORD(9)>=0THEN5270
5270 PRINT:PRINT:PRINT"---*** RESULT OF LAST ENEMY MANUEVER ***---"
5280 FORX=1TO14
5290 FORY=1TO21
5300 IFA(X,Y)<>3THEN5700
5320 W=D8
5330 V=D9
5340 IFW+X>0ANDX+W<15ANDY+V>0ANDY+V<22THEN5420
5350 FORX0=13TO1STEP-1
5355 FORY0=20TO1STEP-1
5360 IFA(X-W*X0,Y-V*Y0)<>0THEN5400
5370 A(X-W*X0,Y-V*Y0)=3
5380 A(X,Y)=0
5390 GOTO6000
5400 NEXTY0,X0
5410 STOP
5420 ONA(X+W,Y+V)+1GOTO5430,5470,5530,5470,5560,5600,5650
5430 A(X+W,Y+V)=3
5440 A(X,Y)=0
5450 GOTO6000
5470 RESTORE:FORCV=1TO16:READA$:NEXT
5480 FORX0=1TOINT(RND(0)*8)+1
5490 READW,V
5500 NEXTX0
5510 IFX+W<1ORX+W>14ORY+V<1ORY+V>21THEN5470
5520 GOTO5420
5530 IFD>50THEN5470
5540 PRINT"*** YOU'VE BEEN RAMMED BY A SHIP ";N$;"!!! ***"
5550 GOTO6190
5560 IFRND(0)<.15THEN5470
5570 PRINT"*** YOUR HEADQUARTERS WAS RAMMED ";N$;"!!! ***"
5580 S3=0:S4=0:D2=0:A(X+W,Y+V)=0
5590 GOTO5620
5600 IFRND(0)<.7THEN5470
5610 PRINT"*** SHIP DESTROYED BY A MINE ";N$;"!!! ***"
5620 S=S-1
5630 IFS<>0THEN5440
5640 GOTO6260
5650 IFRND(0)<.8THEN5470
5660 PRINT"*** SHIP EATEN BY A SEA MONSTER ";N$;"!! ***"
5670 S=S-1
5680 GOTO5630
5700 IFA(X,Y)<>6THEN6000
5710 IFX+M1<1ORX+M1>14ORY+M2<1ORY+M2>21THEN5770
5720 ONA(X+M1,Y+M2)+1GOTO5730,5770,5830,5850,5900,5730,5930
5730 A(X+M1,Y+M2)=6
5740 A(X,Y)=0
5750 GOTO6000
5770 RESTORE:FORCV=1TO16:READA$:NEXT
5780 FORX0=1TOINT(RND(0)*8)+1
5790 READM1,M2
5800 NEXTX0
5810 IFX+M1<1ORX+M1>14ORY+M2<1ORY+M2>21THEN5770
5820 GOTO5720
5830 PRINT"*** YOU'VE BEEN EATEN BY A SEA MONSTER ";N$;"!! ***"
5840 GOTO6190
5850 IFRND(0)>.2THEN5770
5860 PRINT"*** SHIP EATEN BY A SEA MONSTER ";N$;"!! ***"
5870 S=S-1
5880 IFS<>0THEN5730
5890 GOTO6260
5900 PRINT"*** A SEA MONSTER ATE YOU HEADQUARTERS ";N$;"!! ***"
5910 S3=0:S4=0:D2=0
5920 GOTO5730
5930 IFRND(0)<.75THEN5770
5940 PRINT"*** A SEA MONSTER FIGHT ";N$;"!!! ";
5950 IFRND(0)<.8THEN5980
5960 PRINT"AND ONE DIES!! ***"
5970 GOTO5730
5980 PRINT"IT'S A TIE!! ***"
5990 GOTO5770
6000 NEXTY
6010 NEXTX
6030 FORY=1TO9
6040 X=INT(RND(0)*9)+1
6050 D(X)=D(X)+(RND(0)*(2+RND(0)*2))*(1+(-(D<51)OR-(D>2000)))*(-(D(X)<3))
6060 NEXTY
6070 GOTO890
6090 DATA-1,0,-1,1,0,1,1,1,1,0,1,-1,0,-1,-1,-1
6100 PRINT"COURSE (1-8)";
6110 INPUTC1
6120 IFC1<1ORC1>8THEN6100
6130 RESTORE:FORCV=1TO16:READA$:NEXT
6140 FORX9=1TOINT(C1+.5)
6150 READX1,Y1
6160 NEXTX9
6170 RETURN
6190 PRINT"THERE ARE STILL";S;"ENEMY SHIPS LEFT ";N$;"."
6200 PRINT"YOU WILL BE DEMOTED TO THE RANK OF DECK SCRUBBER!!!"
6210 PRINT"WANT ANOTHER GAME";
6220 INPUTA$
6230 IFLEFT$(A$,1)<>"Y"THEN6250
6240 GOTO320
6250 END
6260 PRINT"GOOD WORK ";N$;"!!!  YOU GOT THEM ALL!!!"
6270 PRINT"PROMOTION AND COMMENDATIONS WILL BE GIVEN IMMEDIATELY!!!"
6280 GOTO6210
6300 DATA0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1
6310 DATA1,1,0,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0
